<?php

namespace Ipartek\PruebaBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Curso
 *
 * @ORM\Table()
 * @ORM\Entity(repositoryClass="Ipartek\PruebaBundle\Entity\CursoRepository")
 */
class Curso
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="nombre", type="string", length=255)
     */
    private $nombre;

    /**
     * @var string
     *
     * @ORM\Column(name="descripcion", type="text")
     */
    private $descripcion;

    /**
     * @var integer
     *
     * @ORM\Column(name="max_alumnos", type="integer")
     */
    private $maxAlumnos;

    /**
     * @var integer
     *
     * @ORM\Column(name="horas_duracion", type="integer")
     */
    private $horasDuracion;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="fecha_inicio", type="date")
     */
    private $fechaInicio;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="fecha_fin", type="date")
     */
    private $fechaFin;

    /**
     * @ORM\Column(type="datetime")
     */
    protected $created_at;

    /**
     * @ORM\Column(type="datetime")
     */
    protected $modified_at;
    
    /**
     * Now we tell doctrine that before we persist or update we call the updatedTimestamps() function.
     *
     * @ORM\PrePersist
     * @ORM\PreUpdate
     */
    


    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set nombre
     *
     * @param string $nombre
     * @return Curso
     */
    public function setNombre($nombre)
    {
        $this->nombre = $nombre;
    
        return $this;
    }

    /**
     * Get nombre
     *
     * @return string 
     */
    public function getNombre()
    {
        return $this->nombre;
    }

    /**
     * Set descripcion
     *
     * @param string $descripcion
     * @return Curso
     */
    public function setDescripcion($descripcion)
    {
        $this->descripcion = $descripcion;
    
        return $this;
    }

    /**
     * Get descripcion
     *
     * @return string 
     */
    public function getDescripcion()
    {
        return $this->descripcion;
    }

    /**
     * Set maxAlumnos
     *
     * @param integer $maxAlumnos
     * @return Curso
     */
    public function setMaxAlumnos($maxAlumnos)
    {
        $this->maxAlumnos = $maxAlumnos;
    
        return $this;
    }

    /**
     * Get maxAlumnos
     *
     * @return integer 
     */
    public function getMaxAlumnos()
    {
        return $this->maxAlumnos;
    }

    /**
     * Set horasDuracion
     *
     * @param integer $horasDuracion
     * @return Curso
     */
    public function setHorasDuracion($horasDuracion)
    {
        $this->horasDuracion = $horasDuracion;
    
        return $this;
    }

    /**
     * Get horasDuracion
     *
     * @return integer 
     */
    public function getHorasDuracion()
    {
        return $this->horasDuracion;
    }

    /**
     * Set fechaInicio
     *
     * @param \DateTime $fechaInicio
     * @return Curso
     */
    public function setFechaInicio($fechaInicio)
    {
        $this->fechaInicio = $fechaInicio;
    
        return $this;
    }

    /**
     * Get fechaInicio
     *
     * @return \DateTime 
     */
    public function getFechaInicio()
    {
        return $this->fechaInicio;
    }

    /**
     * Set fechaFin
     *
     * @param \DateTime $fechaFin
     * @return Curso
     */
    public function setFechaFin($fechaFin)
    {
        $this->fechaFin = $fechaFin;
    
        return $this;
    }

    /**
     * Get fechaFin
     *
     * @return \DateTime 
     */
    public function getFechaFin()
    {
        return $this->fechaFin;
    }
    
    /**
     * Set created_at
     *
     * @param \DateTime $createdAt
     * @return Curso
     */
    public function setCreatedAt($createdAt)
    {
    	$this->created_at = $createdAt;
    
    	return $this;
    }
    
    /**
     * Get created_at
     *
     * @return \DateTime
     */
    public function getCreatedAt()
    {
    	return $this->created_at;
    }
    
    /**
     * Set modified_at
     *
     * @param \DateTime $modifiedAt
     * @return Curso
     */
    public function setModifiedAt($modifiedAt)
    {
    	$this->modified_at = $modifiedAt;
    
    	return $this;
    }
    
    /**
     * Get modified_at
     *
     * @return \DateTime
     */
    public function getModifiedAt()
    {
    	return $this->modified_at;
    }
    
    
    
    /**
     * Callback
     */
    /**
     * Now we tell doctrine that before we persist or update we call the updatedTimestamps() function.
     *
     * @ORM\PrePersist
     * @ORM\PreUpdate
     */
    public function updatedTimestamps()
    {
    	$this->setModifiedAt(new \DateTime(date('Y-m-d H:i:s')));
    
    	if($this->getCreatedAt() == null)
    	{
    		$this->setCreatedAt(new \DateTime(date('Y-m-d H:i:s')));
    	}
    }
    
    
    
}
